import React from 'react'

class JsonUtils extends React.Component {
    /**
     * 字符串转json
     * @param {*} data 
     */
    static stringToJson(data){
        return JSON.parse(data);
    }

    /**
     * json转字符串
     * @param {*} data 
     */
    static jsonToString(data){
        return JSON.stringify(data);
    }


    /**
     * map转换为json
     * @param {*} map 
     */
    static mapToJson(map) {
        return JSON.stringify(JsonUtils.strMapToObj(map));
    }

    /**
     * json转换为map
     * @param {*} jsonStr 
     */
    static jsonToMap(jsonStr){
        return JsonUtils.objToStrMap(JSON.parse(jsonStr));
    }

   /**
    * map转化为对象（map所有键都是字符串，可以将其转换为对象）
    * @param {*} strMap 
    */
    static strMapToObj(strMap){
        let obj= Object.create(null);
        for (let[k,v] of strMap) {
            obj[k] = v;
        }
        return obj;
    }
   /**
    * 对象转换为Map
    * @param {*} obj 
    */
    static objToStrMap(obj){
        let strMap = new Map();
        for (let k of Object.keys(obj)) {
            strMap.set(k,obj[k]);
        }
        return strMap;
    }
}
export default JsonUtils;